package com.enjoyor.soa.traffic.api.service.dubbo.iems;

import com.enjoyor.soa.traffic.api.dto.iems.PlanAttachementDto;
import com.enjoyor.soa.traffic.api.dto.iems.PlanInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

public interface DubboPlanInfoService {

	/******* PlanInfoDto *************/
	/**
	 * 查询文本预案
	 * 
	 * @param planId
	 * @param planName
	 * @param planNameLike
	 * @param planCategory
	 * @param responseLevel
	 * @param releaseDept
	 * @return
	 */
	ResultPojo listPlanInfo(String token, String planId, String planName, String planNameLike, String planCategory,
			String responseLevel, String releaseDept);

	/**
	 * 分页查询
	 * 
	 * @param planId
	 * @param planName
	 * @param planNameLike
	 * @param planCategory
	 * @param responseLevel
	 * @param releaseDept
	 * @param page
	 * @param pageType
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	ResultPojo pagePlanInfo(String token, String planId, String planName, String planNameLike, String planCategory,
			String responseLevel, String releaseDept, Page page, String pageType);

	/**
	 * 添加文本预案
	 * 
	 * @param dto
	 * @return
	 */
	ResultPojo addPlanInfo(String token, PlanInfoDto dto);

	/**
	 * 修改
	 * 
	 * @param dto
	 * @return
	 */
	ResultPojo updatePlanInfo(String token, PlanInfoDto dto);

	/**
	 * 设置预案关联信息
	 * 
	 * @param token
	 * @param dto
	 * @return
	 */
	ResultPojo setRltPlanInfo(String token, PlanInfoDto dto);

	/**
	 * 删除
	 * 
	 * @param planId
	 * @return
	 */
	ResultPojo removePlanText(String token, String planId);

	/******* PlanAttachementDto *************/
	/**
	 * 添加附件
	 * 
	 * @param attachment
	 * @return
	 */
	ResultPojo addAttachment(String token, PlanAttachementDto attachment);

	/**
	 * 获取附件
	 * 
	 * @param attachmentId
	 * @param PlanId
	 * @return
	 */
	ResultPojo getAttachment(String token, String attachmentId, String PlanId);

	/**
	 * 删除附件
	 * 
	 * @param attachmentId
	 * @param PlanId
	 * @return
	 */
	ResultPojo removeAttachment(String token, String attachmentId, String PlanId);

	/************ 资源库关联 *************************/
	/**
	 * 获取相关资源库
	 * 
	 * @param planId
	 * @param type
	 * @return
	 */
	ResultPojo getRltResource(String planId, String type);

	/**
	 * 添加资源库关联信息
	 * 
	 * @param planId
	 * @param type
	 * @param sourceId
	 * @return
	 */
	ResultPojo addRltResource(String planId, String type, String sourceId, String sourceName);

	/**
	 * 删除资源库关联信息
	 * 
	 * @param planId
	 * @param type
	 * @param sourceId
	 * @return
	 */
	ResultPojo delRltResource(String planId, String type, String sourceId);
}
